<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    var list = [{
        name: "张三",
        class: 2215,
        chinese: 55,
        math: 66,
        english: 77,
    }, {
        name: "李四",
        class: 2215,
        chinese: 92,
        math: 87,
        english: 73,
    }, {
        name: "王五",
        class: 2215,
        chinese: 74,
        math: 82,
        english: 66,
    }];

    // var sumCh = 0;
    // for (var i = 0; i < list.length; i++) {
    //     var item = list[i];// 循环的当前元素(对象)
    //     sumCh += item.chinese;
    // }
    // console.log(sumCh);

    // var sumCh = 0;
    // list.forEach(function (item) {
    //     console.log(item);
    //     sumCh += item.chinese;
    // })
    // console.log(sumCh);


    // reduce(function (prev, item, index, array) { }, initValue) 数组归并
    // 接收一个函数作为参数  函数中有四个形参  prev, item, index, array
    //      prev  1. 接收initValue传入的值作为初始值,如果initValue不传参,则默认是数组的第一个元素,数组遍历是从第二个元素开始向后遍历  2. 接收函数的返回值 作为下次函数执行时prev的初始值
    //      item  循环的当前元素
    //      index 循环的当前下标
    //      array 原数组

    // initValue  接收一个值 作为prev的初始值

    // var list = [1, 4, 7, 2, 5, 8, 3, 6, 9];
    // var result = list.reduce(function (prev, item, index, array) {
    //     console.log(prev, item, index, array); // 0  1   5
    //     return prev + item; // 1  5  12
    // }, 0);
    // console.log(result);


    // var list = [1, 4, 7, 2, 5, 8, 3, 6, 9];
    // var result = list.reduce(function (prev, item, index, array) {
    //     console.log(prev, item, index, array); //
    //     return prev + item; //
    // });
    // console.log(result);


    // reduceRight()   用法同reduce  倒着遍历

    // var list = [1, 4, 7, 2, 5, 8, 3, 6, 9];
    // var result = list.reduceRight(function (prev, item, index, array) {
    //     console.log(prev, item, index, array); // 0  1   5
    //     return prev + item; // 1  5  12
    // }, 0);
    // console.log(result);





</script>

</html>